//导入api内的方法或者axios
import {findAll,saveOrUpdate,deleteById,findProductById,findAllProCate} from '@/api/product.js'
import { Notification} from 'element-ui';
//配置Vuex结构
export default {
    namespaced:true,
    state:{
        totalData:{},
        //产品信息
        ProdauctData:[],
        //产品栏目信息
        proCate:{}
    },
    getters:{
        total:state=>state.totalData.total,
        productData:state=>state.totalData.list
    },
    mutations:{
        changeTotalData(state,data){
            state.totalData=data;
        },
        changeProdauctData(state,data){
          state.ProdauctData=data;
        },
        changeProCate(state,data){
          state.proCate=data
        }
    },
    actions:{
        findAllProCate({commit},payload){
          findAllProCate(payload).then(res=>{
            commit("changeProCate",res.data)
          })
        },
        /**
         * 查找产品信息
         */
        findAll({commit},payload){
            findAll(payload).then(res=>{
                commit('changeTotalData',res.data)
            })
        },
        async saveOrUpdate({dispatch},payload){
            //接受数据，发送请求 ，提示用户保存成功，处理page,分发findAll动作
            let res=await saveOrUpdate(payload.form);
            if(res.status===200){
              Notification({
                type:'success',
                title:'成功',
                message:'保存成功'
              })
              //查找数据 (区分是新增查找还是修改查找 如果是新增查找 找最后一页，如果是修改查找，找当前页)
              dispatch('findAll',payload.queryParams);
            }else{
              Notification({
                type:'error',
                title:'失败',
                message:'保存失败'
              })
            }
          },
          async deleteById({dispatch},payload){
            //接受数据，发送请求 ，提示用户保存成功，处理page,分发findAll动作
            let res=await deleteById({id:payload.id});
            console.log(payload.id,'-----')
            if(res.status===200){
              Notification({
                type:'success',
                title:'成功',
                message:'删除成功'
              })
              //查找数据 (区分是新增查找还是修改查找 如果是新增查找 找最后一页，如果是修改查找，找当前页)
              // dispatch('findAll',payload.queryParams);
            }else{
              Notification({
                type:'error',
                title:'失败',
                message:'删除失败'
              })
            }
          },
          //通过产品id找详情信息
          findProductById({commit},payload){
            findProductById(payload).then(res=>{
              commit('changeProdauctData',res.data)
            })
          }
    }
}